// pages/shopList/shopList.js
import mock from '../../mock/index'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    shopList: [],
    page: 1,
    limit: 5,
    total: 0,
    maxPage: 0,
    shopId: 1,
    isLoading: false, //节流,防抖
    isShowGoTopEle: false,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    wx.setNavigationBarTitle({
      title: options.title || ''
    })
    this.setData({
      page: parseInt(options.page),
      limit: parseInt(options.limit),
      shopId: options.shopId
    })
    this.getShopList()
  },
  /**
   * 获取商店列表
   */
  getShopList() {
    const res = mock.request({
      url: `/categories/${this.data.shopId}/shops`,
      method: 'get',
      data: {
        _page: this.data.page,
        _limit: this.data.limit,
      }
    })

    this.setData({
      shopList: [...this.data.shopList, ...res.list],
      total: res.total,
      maxPage: res.maxPage
    })
  },

  /**
   * 回到页面顶部
   */
  goTop() {
    wx.pageScrollTo({
      scrollTop: 0
    })
  },

  /**
   * 页面滚动
   * @param {*} ev 
   */
  onPageScroll(ev) {
    this.setData({
      isShowGoTopEle: ev.scrollTop > 600 ? true : false
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.setData({
      page: 1,
      shopList: [],
      isLoading: false
    })
    this.getShopList()
    wx.showToast({
      title: '刷新成功',
    })
    wx.stopPullDownRefresh()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    if (!this.data.isLoading) {
      this.setData({
        isLoading: true
      })
      const page = this.data.page + 1
      if (page > this.data.maxPage) {
        wx.showToast({
          title: '没有更多信息了呦',
          icon: 'none'
        })
        return
      }
      this.setData({
        page,
      })
      this.getShopList()
      this.setData({
        isLoading: false
      })
    }

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})